package ProyectoX.Source.Movimientos;

import java.awt.Point;

import ProyectoX.Source.Naves.NaveEnemiga;

/**
 * Hilo asociado a los movimientos de la nave Jefe.
 * @author Guido
 *
 */
public class MovimientosBoss extends Movimientos {
	
	public MovimientosBoss(int fac){
		factor = fac;
	}
	
	public void preparar() {
		this.nave.setLocation(factor, 0-this.nave.getHeight());
	}

	public void jugar() {
		this.start();
	}
	
	public void run() {
		int i = 0;
		dormir(3000);
		Point pos = this.nave.getLocation();
		
		while( pos.y < 0 ) { //Aparecer en pantalla
			dormir(100);
			pos = sur(nave,pos,8);
		}
		
		while (!nave.estaMuerto()) { 
			
			while( pos.x > 0 && (!nave.estaMuerto()) ) { //Moverse todo a la izquierda
					dormir(50);
					juego.graficaDisparoBoss(nave);
					pos = oeste(nave,pos,5);
					verSiPego();
					verSiChoco();
			}
			
			while( pos.x < juego.getWidth()-nave.getWidth()-10 && (!nave.estaMuerto()) ) { //Moverse todo a la derecha
				dormir(50);
				juego.graficaDisparoBoss(nave);
				pos = este(nave,pos,5);
				verSiPego();
				verSiChoco();
				
				if (i == 2 && (pos.x <= 140 && pos.x >= 120)){
					while( pos.y < nave.getHeight()*2 && (!nave.estaMuerto()) ) { //Bajar
						dormir(20);
						juego.graficaDisparoBoss(nave);
						pos = sur(nave,pos,7);
						verSiPego();
						verSiChoco();
					}
					while( pos.y > 0 && (!nave.estaMuerto()) ) { //Subir
						dormir(20);
						juego.graficaDisparoBoss(nave);
						pos = norte(nave,pos,7);
						verSiPego();
						verSiChoco();
					}
					i = 0;
				}
			}
			i++;
		}
		juego.sacarNave((NaveEnemiga)nave);
		juego.repaint();
	}

}
